//导入
// let m1 = require('./m1.js');
// let m2 = require('./m2.js');

//导入
// require 函数的返回结果 『目标模块中 module.exports 的值』
//1. require 导入的模块的过程. (了解)
//     1. 获得目标模块的代码
//     2. 用一个函数包裹目标模块的代码
//     3. 执行函数. (执行目标模块的代码)
//     4. 返回 module.exports 的值
// let m1 = require('./m1.js');

//2. require 文件名的路径 
//  相对路径 (用这个, 不受到命令行的位置影响, 必须要以 『./』  或者 『../』 开头)
//  绝对路径

//3. require 路径的后缀  js 或者 json 文件, 后缀名可以不写
// let m1 = require('./m1');// 先找 js 再找 json 文件
// json 返回的结果值是『对象类型的』
// let m3 = require('./m3');

//4. libs 库
// 空文件夹导入是不可以的, 会报错
//4-1 自动寻找文件夹下 package.json 中 main 属性对应的文件
// let libs = require('./libs');// libs/xyz.js

//4-2 如果文件夹下没有 package.json 文件, 寻找 index.js 与 index.json 文件, 如果不存在则报错
// let utils = require('./utils');

// let libs = require('./libs');

//5. 内置模块 
// const fs = require('fs');
// const http = require('http');
// const url = require('url');

//6. npm 模块
//原理: 导入了 node_modules 文件夹中, 跟模块名同名的『目录』
// const uniq = require('uniq');//导入的简便写法
// const uniq = require('./node_modules/uniq');// 导入的根还是『文件』
// const uniq = require('./node_modules/uniq/uniq.js'); // 入口文件 『main属性对应的文件』
// const _ = require('lodash');

//7. 自动向上目录寻找特性 非常有意义  『npm i』   『npm run』 都有该特性
const util = require('./utils');

console.log(util);
